﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace baroIstatistik.Class
{
	public class basvururaporlari
	{
        public decimal toplam_basvuru;
        public decimal uniq;
        public decimal yuzde;
        public string baslik;
        public string title;




        // toplam basvuru sonucunu veren metod yapici metod ile nesne turetildigi anda yaratilitir
        public basvururaporlari()
        {
            SqlConnection sqlcon = connection.baglanti;
            SqlCommand sqlcmd = new SqlCommand("select Count(*) from basvuru ", sqlcon);
            sqlcon.Open();

            toplam_basvuru = Convert.ToDecimal(sqlcmd.ExecuteScalar());

            sqlcon.Close();        
                
        }

        public static List<basvururaporlari> egitimdagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,egitimdurum from basvuru group by egitimdurum having egitimdurum > 0", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru ) * 100);
                switch (sdr["egitimdurum"].ToString())
                {
                    case  "1":
                        b.baslik = "Okur-yazar Değil";
                        break;
                    case "2":
                        b.baslik = "Okur-yazar";
                        break;
                    case "3":
                        b.baslik = "İlk Öğretim Mezunu";
                        break;
                    case "4":
                        b.baslik = "Orta Okul Mezunu";
                        break;
                    case "5":
                        b.baslik = "Lise Mezunu";
                        break;
                    case "6":
                        b.baslik = "Üniversite Mezunu";
                        break;
             
                    default:
                        b.baslik = "Tanimsiz Kayit";
                        break;
                }


                brp.Add(b);
            }
            con.Close();

            return brp;
        
        }

        


       public static List<basvururaporlari> yillaradagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,year(kayittarihi) as yil from basvuru  where kayittarihi >'1900-09-09' group by year(kayittarihi) ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru ) * 100);
                b.baslik = sdr["yil"].ToString();
                
               


                brp.Add(b);
            }
            con.Close();

            return brp;
        
        }



        public static List<basvururaporlari> medenidagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,medenidurum from basvuru  where medenidurum != 'null' group by medenidurum ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["medenidurum"].ToString();

                brp.Add(b);
            }
            con.Close();

            return brp;

        }


        public static List<basvururaporlari> ulasmadagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,nasilulasti from basvuru where nasilulasti !='null' group by nasilulasti ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["nasilulasti"].ToString();
               


                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<basvururaporlari> calismadagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,calismadurumu from basvuru where calismadurumu !='null' group by calismadurumu ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["calismadurumu"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }


        public static List<basvururaporlari> ihtiyacdagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,kendineyetiyormu from basvuru where kendineyetiyormu !='null' group by kendineyetiyormu ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["kendineyetiyormu"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }



        public static List<basvururaporlari> istanimdagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand sqlcmd = new SqlCommand("select Count(*) from basvuru where calismadurumu !='Hayır işsiz' ", con);
            con.Open();

            decimal toplam_basvuru2 = Convert.ToDecimal(sqlcmd.ExecuteScalar());

            con.Close();  

            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,isintanimi from basvuru where isintanimi !='null' and calismadurumu !='Hayır işsiz' group by isintanimi ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / toplam_basvuru2) * 100);
                b.baslik = sdr["isintanimi"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<basvururaporlari> siddetturudagilimi()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();
            string[] sorgular = { "fiziksel", "cinsel", "psikolojik", "ekonomik", };
            string[] sdler = { "Fiziksel Şiddet", "Cinsel Şiddet", "Psikolojik Şiddet", "Ekonomik Şiddet"};
            for (int i = 0; i < sorgular.Length; i++)
            {
                basvururaporlari b = new basvururaporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<basvururaporlari> basvurunedenidagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();
            string[] sorgular = { "sozlu_bilgilendirme", "_6348", "tck", "avukattalebi", "danisman" };
            string[] sdler = { "Sözlü Bilgilendirme", "6284 Sayili Yasa Kapsaminda Dilekce Hazirlanmasi", "TCK Kapsamında Şikayet Dilekçesi Hazırlanması", "İzmir Barosu Adli Yardım Servisinden Avukat Talebinde Bulunma", "Diğer Yazılı Hukuksal Danışmanlık" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                basvururaporlari b = new basvururaporlari();
                b= chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;

        
        }

        public static List<basvururaporlari> yakinlikdagilimi()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();
            string[] sorgular = { "esSevgili", "basvuranaile", "esaile", "cocuklar" };
            string[] sdler = { "Eş-Sevgili", "Başvuranın Ailesi-Akrabaları", "Eşinin Ailesi-Akrabaları", "Çocuklar" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                basvururaporlari b = new basvururaporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static basvururaporlari chehcksogru(string sorgu,string sd)
        {
   


            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar from basvuru where        " + sorgu + " =1 ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            basvururaporlari b = new basvururaporlari();
            while (sdr.Read())
            {
                
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik =sd;



            
            }
            con.Close();

            return b;
    
       }

        public static List<basvururaporlari> farkindamidagilimi()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,siddetinfarkindami from basvuru where siddetinfarkindami =1 or siddetinfarkindami=2 group by siddetinfarkindami ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["siddetinfarkindami"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<basvururaporlari> darpdagilimi()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,darpraporu from basvuru where darpraporu =1 or darpraporu=0 group by darpraporu ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["darpraporu"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<basvururaporlari> karakolsikayetdagilimi()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,karakolsikayet from basvuru where karakolsikayet =1 or karakolsikayet=0 group by karakolsikayet ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["karakolsikayet"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<basvururaporlari> karakoltutumdagilimi()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,karakoltutumu from basvuru where karakoltutumu !='null' group by karakoltutumu ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["karakoltutumu"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<basvururaporlari> siddetegitimdagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,siddetegitim from basvuru where siddetegitim !='null' or siddetegitim !=' '  group by siddetegitim ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["siddetegitim"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<basvururaporlari> siddetcalismadagilim()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,siddetcalisiyormu from basvuru where siddetcalisiyormu =1 or siddetcalisiyormu=0 group by siddetcalisiyormu ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                switch (sdr["siddetcalisiyormu"].ToString())
                {
                    case "1":
                     b.baslik="Çalışıyor";
                        break;
                         case "0":
                        b.baslik = "Çalışmıyor";
                        break;
                
                }
                
             



                brp.Add(b);
            }
            con.Close();

            return brp;

        }


        public static List<basvururaporlari> siddetsuresidagilimi()
        {
            List<basvururaporlari> brp = new List<basvururaporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,nezamandanberi from basvuru where nezamandanberi !='null' group by nezamandanberi ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                basvururaporlari b = new basvururaporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_basvuru) * 100);
                b.baslik = sdr["nezamandanberi"].ToString();



                brp.Add(b);
            }
            con.Close();

            return brp;

        }



	}
}